// 获取 gulp
var gulp = require('gulp')
// 获取 uglify 模块（用于压缩 JS）
var uglify = require('gulp-uglify')

// 压缩 js 文件
// 在命令行使用 gulp script 启动此任务
//加上 return返回值
//gulp的task任务要加上返回值，如果是单任务，没有return其实也是可以执行的，不会报错。
//当多任务执行，涉及到执行顺序时。没有return，就会导致当前任务还没完成就会同步执行下一个任务，就会报错。
gulp.task('script', function() {
	// 1. 找到文件
	return gulp.src('js/*.js')
		// 2. 压缩文件
		.pipe(uglify())
		// 3. 另存压缩后的文件
		.pipe(gulp.dest('dist/js'))
});
//gulp.task('script', function() {
//	// 1. 找到文件
//	gulp.src('js/*.js')
//		// 2. 压缩文件
//		.pipe(uglify())
//		// 3. 另存压缩后的文件
//		.pipe(gulp.dest('dist/js'))
//
//	return new Promise(function(resolve, reject) {
//		console.log("HTTP Server Started");
//
//		resolve();
//
//	});
//});

// 在命令行使用 gulp auto 启动此任务
//gulp.task('auto', function() {
//	// 监听文件修改，当文件被修改则执行 script 任务
//	gulp.watch('js/*.js', ['script'])
//});

/**
 * 当运行 gulp watch时：
直接报错：Error: watching ./scss/*.scss: watch task has to be a function (optionally generated by using gulp.parallel or gulp.series)
现在使用的gulp4.0 版本,watch的第二个参数是函数，所以要修改gulpfile.js：
 */
gulp.task('watch', function() {
	return new Promise(function(resolve, reject) {
		gulp.watch('js/*.js', gulp.series('script')) //watch监听文件
		resolve();
	});
})
// 使用 gulp.task('default') 定义默认任务
// 在命令行使用 gulp 启动 script 任务和 auto 任务
//gulp.task('default', ['script', 'auto'])

gulp.task("default",gulp.series('script', 'watch'));
